package com.dog.basics.security.service;
import com.dog.basics.security.enums.App;
import com.dog.basics.security.exception.UsernameNotFoundExceptionBase;
import com.dog.basics.security.model.AppConnect;
import org.springframework.security.core.userdetails.UserDetailsService;

/**
 * 用户详细信息
 *
 * @author
 */
public interface DogUserDetailsService extends UserDetailsService {

	/**
	 * 获取前端登陆的用户信息
	 *
	 * @param app 所登陆的应用
	 * @param bizUserId openId
	 * @return UserDetails
	 * @throws UsernameNotFoundExceptionBase
	 */
	DogUser loadUserByAppIdAndBizUserId(App app, String bizUserId);

	/**
	 * 手机号或者邮箱密码登录
	 *
	 * @param code 所登陆的应用
	 * @return UserDetails
	 * @throws UsernameNotFoundExceptionBase
	 */
	DogUser loadUserBypasswordOrEmail(String code);


	/**
	 * 如果必要的话，插入新增用户
	 * @param phone
	 */
	void insertUserIfNecessary(String phone,String openId,Integer type);

	/**
	 * 更新登录的时间和IP
	 * @param userId
	 */
	void updateUser(Long userId);
	/**
	 * 更新登录的时间和IP 后台
	 * @param userId
	 */
	Boolean updateSysUser(Long userId);
}
